Forms are a common way to collect structured information. Examples of forms include invoices, receipts, purchase requests, tax forms, etc. A form can be any document that has key-value pairs. As an example, a key-value pair is an address label, the key, along with the data that represents an address, the value. Input into forms can include typed text or hand writing. As forms can include many different keys and different types of input, extracting the key-value pairs from forms cannot be done that same way for different types of forms. In addition, different types of input provide different challenges in extracting key-value pairs.